package com.handpay.framework.swiper;

import android.graphics.Bitmap;


public interface IBusinessSwiper extends IPersonalSwiper {
    /**
     * @param amount 确认金额.当然，如果不支持affirmAmount，也可以通过这个接口设置刷卡金额
     * @param timeout 超时时限。以ms为单位
     * @return 
     */
    Result affirmAmount(final String amount, final int timeout);
    /**
     * @param factor 加密的过程因子
     * @param timeout 超时时限。以ms为单位
     * @return
     */
    Result inputPwd(final String factor, final int timeout);
    /** 是不是可以用inputPwd和encrypData来代替？
     * @param factor 加密的过程因子
     * @param timeout 超时时限。以ms为单位
     * @return 加密后的密码。
     */
    SwipeResult registerPwd(final String factor, final int timeout);

    /**
     * 打印图片
     * @param position 偏移量
     * @param bitmap 位图
     */
    boolean printBitMap(int position, Bitmap bitmap);
    
    /**
	 * 打印字符
	 *
     * @param data
     */
    boolean printString(String data);
	
	/**
  	 * 打印字符和图片
  	 * @param data
  	 * @param bitmap
  	 * @return
  	 */
    boolean print(String data, Bitmap bitmap);

    /**
     * 用于设置明文密码。主要用于个人刷卡器
     * @param pwd
     */
    void setPlainPwd(String pwd);
    enum Result {
        OK, //确认
        TIMEOUT, //超时
        CANCEL, //取消
        ERROR
    }
    String BANK_ACCOUNT_KEY = "account";
    String BANK_PLAIN_ACCOUNT_KEY = "PlainAccountKey";
    String BANK_PAN_KEY = "pin";
    String BANK_AMOUNT_KEY = "amount";
    String BANK_TRACK2_KEY = "track2";
    String BANK_TRACK3_KEY = "track3";
    String BANK_DYNAMIC_KEY = "dynamicKeyData";
	String BANK_ICNUMBER = "icnumber";
	String BANK_DCDATA = "dcdata";
	//新版 2.0.0  
    String BANK_PLAIN_EXPIRE_DATE = "plainExpireDate";
    int FLAG_NORMAL = 2;
    int FLAG_SUPER = 1;
    
    /**
     * 消费通知新增
     */
    String BANK_TransactionType_KEY= "transationType";//新增消费通知的标记
    String BANK_MerchantID_KEY = "merchantId";
    String BANK_TerminalID_KEY = "terminalId";
    String BANK_OrderID_KEY    = "orderId";
    //金额本来可以按照帅哥的那种方式显示在密码页面，但是为了不影响已经稳固的转账交易，还是先区分开来，修改起来也不难。
    String BANK_TransAmount_KEY= "transAmount";
}
